Symbolic Execution and Software Testing
نویسنده
چکیده
We review different flavors of symbolic execution, ranging from generalized symbolic execution to dynamic symbolic execution or concolic testing. We also identify challenges to symbolic execution, such as dealing with: looping constructs, multi-threading, recursive data structures, and complex mathematical constraints, as well as scalability challenges due to the path explosion problem. We discuss techniques and tools that address these challenges. Finally we discuss the application of symbolic execution to software testing. If time permits, we will also review applications to: security, robustness, reliability and load testing.
منابع مشابه
Symbolic execution systems-a review - Software Engineering Journal
Symbolic execution is a technique that is useful in the validation of software. It may be used to aid in the generation of test data and in program proving. As software engineering becomes more concerned with the development of tools, symbolic execution will become an important item in the toolkit. This paper gives a review of symbolic execution and its applications. A minimum set of features f...
متن کاملSymbolic Execution and Constraint Solving
This report documents the program and the outcomes of Dagstuhl Seminar 14442 “Symbolic Execution and Constraint Solving”, whose main goals were to bring together leading researchers in the fields of symbolic execution and constraint solving, foster greater communication between these two communities and exchange ideas about new research directions in these fields. There has been a veritable rev...
متن کاملConcolic Testing and Constraint Satisfaction
Software testing is the most common technique used in industry to improve reliability and quality of software. Unfortunately, testing is mostly a manual process that reportedly accounts for over half of the typical cost of software development and maintenance. Symbolic execution [6, 2, 3, 9, 5] was proposed in the 70s to automate software testing by generating test inputs. During symbolic execu...
متن کاملFinding Errors in Python Programs Using Dynamic Symbolic Execution
For statically typed languages, dynamic symbolic execution (also called concolic testing) is a mature approach to automated test generation. However, extending it to dynamic languages presents several challenges. Complex semantics, fragmented and incomplete type information, and calls to foreign functions lacking precise models make symbolic execution difficult. We propose a symbolic execution ...
متن کاملA New Approach for Distributed Symbolic Software Testing
This paper presents a new parallel algorithm for backward symbolic execution. We use a program modeling allowing an easy distributed symbolic execution and a scalable program testing. A program is divided into several parts assigned to different nodes. A particular node: the Coordinator allocates tasks to workers and collects final results.
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2013